﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfAGVSystem.DBModel
{
    [Table("AGV_Entity")]
    public class AGV_Entity:BaseDbmodel
    {
        [Key]

        public int Id { get; set; }
        /// <summary>
        /// AGV编号
        /// </summary>
        public int Deviceid { get; set; }
        /// <summary>
        /// AGV IP地址
        /// </summary>
        public string IP { get; set; }
        /// <summary>
        /// 控制API 19205
        /// </summary>
        public int ControlAPI { get; set; } = 19205;
        /// <summary>
        /// 导航API 19206
        /// </summary>
        public int NavigationAPI { get; set; } = 19206;
        /// <summary>
        /// AGV 类型
        /// </summary>
        public int AGVType { get; set; }
        /// <summary>
        /// 所属地图
        /// </summary>
        public int MapType { get; set; }
        /// <summary>
        /// 所属区域
        /// </summary>
        public int AreaType { get; set; }
        /// <summary>
        /// 物料类型
        /// </summary>
        public int MaterialType { get; set; }
        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnable { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }


        public string BFQIP { get; set; }
        public int BFQPort { get; set; }

        public AGV_Entity Clone()
        {
            AGV_Entity t = new AGV_Entity()
            {
                Deviceid = this.Deviceid,
                IP = this.IP,
                ControlAPI = this.ControlAPI,
                NavigationAPI = this.NavigationAPI,
                AGVType = this.AGVType,
                MapType = this.MapType,
                AreaType = this.AreaType,
                MaterialType = this.MaterialType,
                IsEnable = this.IsEnable,
                Remark = this.Remark
            };
            return t;
        }
    }
}
